草庐IT

c++ - std::wstring 长度

全部标签

java - JNI。如何从 jobject 获取 jstring 并将其转换为 char*

这是我目前所拥有的:我传递了一个具有2个字段的对象:String和Integer,作为参数我想发送信息在C部分进行处理,这在这一点上并不重要......我在jstring声明中收到投诉JNIEXPORTjintJNICALLJava_Tier3_NativeMethods_totalPalletsIn(JNIEnv*env,jclasscls,jobjectstat){jclassstaticsitcs=(*env)->GetObjectClass(env,stat);//HereItrytogetitusingtheIDjfieldIDidDate=(*env)->GetFieldI

java - 如何使 Swig 正确包装在 C 中修改为 Java Something-or-other 的 char* 缓冲区?

我正在尝试包装一些遗留代码以便在Java中使用,我很高兴看到Swig能够处理头文件并且它生成了一个几乎可以工作的优秀包装器。现在我正在寻找能让它真正发挥作用的深层魔法。在C中我有一个看起来像这样的函数DLL_IMPORTintDustyVoodoo(char*buff,intlen,char*curse);此函数返回的这个整数是错误代码,以防失败。参数是buff是一个字符缓冲区len是缓冲区中数据的长度curse包含调用DustyVoodoo的结果的另一个字符缓冲区所以,你可以看到这是怎么回事,结果实际上是通过第三个参数返回的。另外len令人困惑,因为它可能是两个缓冲区的长度,它们在调

java - 没有 OpenGL、DirectX、XNA 等的 3D 图形理论和代码

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我想知道是否有任何教程在显示相关代码的同时介绍3D图形理论,不使用OpenGL或DirectX或其他东西。我对工程数学非常满意(我是一名A/VDSP学生,所以我一直在处理大量数学问题)。我看到的大多数教程要么向我展示相同的旧矩阵平移/旋

如何扩展大模型的上下文长度

一、背景大模型的上下文长度是指我们在使用大模型的时候,给大模型的输入加上输出的字符(Token)总数,这个数字会被限制,如果超过这个长度的字符会被大模型丢弃。目前开源的大模型上下文长度一般不长,比如Llama2只有4K,Code-Llama系列因为需要输入代码,扩展到了16K。闭源系列模型的提供了更长的上下文长度,比如OpenAI在其最新模型GPT-4Turbo中提供了128K的上下文长度,Anthropic的Claude2.1模型提供了200K上下文长度。一些场景需要较长上下文,比如,文档翻译需要将整篇文档输入给大模型进行翻译,长文档内容抽取需要大模型读取整篇长文档进行内容抽取,会议内容总结

java - 限制来自 Java 的 native 代码功能

我有一个java应用程序,它在某些部分使用JNI来完成一些工作。它遵循通常的DLL加载,然后调用DLL的本地方法。有什么方法可以限制native方法可以从Java应用程序做什么?例如,我们是否可以限制DLL不打开任何文件或不打开任何套接字,即使它有代码可以这样做?它可以禁止它加载的DLL来做某些事情,可能是通过登录某些东西或抛出异常。 最佳答案 不,你不能。DLL作为一个整体加载,然后Java端无法控制native代码正在做什么。一种解决方案可能是中间人方法。这将涉及编写一个与原始DLL具有相同接口(interface)的“外壳”D

java - JNI system.out 和 printf 行为

我正在编写一个程序,该程序使用JNI与一个简单的C程序进行交互。我创建了以下程序:publicstaticvoidmain(String[]args){Helloh=newHello();System.out.println("before");intnumber=h.sayHello();System.out.println(number);System.out.println("after");}和JNIEXPORTintJNICALLJava_Hello_sayHello(JNIEnv*env,jobjectobj){printf("HelloJNI\n");return10;}

java - 查找所有数组的长度多维数组,Java

我想使用多维数组来存储数据网格。但是,我还没有找到一种简单的方法来查找数组的2nd部分的长度。例如:boolean[][]array=newboolean[3][5];System.out.println(array.length);只会输出3。是否有另一个简单的命令来查找第二个数组的长度?(即以同样的方式输出5) 最佳答案 尝试使用array[0].length,这将给出您正在寻找的维度(因为您的数组不是锯齿状的)。 关于java-查找所有数组的长度多维数组,Java,我们在Stack

java - Eclipse 中大量迭代后循环中的断点

假设我有以下代码。调试时,我希望Eclipse在完成100万次迭代后停止。这该怎么做?我无法手动执行100万次。for(inti=0;i 最佳答案 你可以在eclipse中放置条件断点:设置断点右击->属性打开“条件”复选框输入条件代码我==1000000 关于java-Eclipse中大量迭代后循环中的断点,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/19216593/

java - (Java) 将二进制数转换为字符串时指定位数(长度)?

我正在尝试将数字作为二进制字符串存储在数组中,但我需要指定将其存储为多少位。例如,如果我需要用两位存储0,我需要一个字符串“00”。或6位的1010,即“001010”。有人能帮忙吗?编辑:谢谢大家,因为我一般不擅长数学/编程,所以我选择了David的最简单的解决方案。像这样的东西:binaryString.append(Integer.toBinaryString(binaryNumber));for(intn=binaryString.length();n它似乎工作正常,所以除非它非常低效,否则我会使用它。 最佳答案 使用Int

java - 使用 JNI 从 C 调用 java 代码时发生内存泄漏

我有一个C程序,它使用JNI在java存储中存储一些对象。(在有人问之前,这里需要使用javastore,我必须用C编写一个客户端,它能够从这个store添加和检索对象)。我编写了程序并尝试添加100000个大小为1KB的对象。但是在仅添加50000个对象后,我收到“内存不足”消息(请注意,每当我无法使用NewStringUTF和NewByteArray函数分配新的字符串或字节数组时,我都会打印这些“内存不足”消息)。那时我的应用程序只使用了80MB的内存。我不明白为什么这些方法返回NULL。有什么我想念的吗。此外,即使我正在释放为java创建的字节数组和字符串,内存也会继续增加。这是